package com.quickask.idao;

import com.quickask.entity.AsknowUserEntity;

/**
 * Created by moonlight on 2015/9/6.
 */
public interface IUserDao{
    public void doNothing();

    /**
     * 查看手机号码是否已被注册过
     * @param phoneNum 手机号码
     * @return 返回结果码，详见com.quickask.operate.data.ResultCode.java
     */
    public int isPhoneExist(String phoneNum);

    /**
     * 查看账号是否已被注册过
     * @param userAccount 账号
     * @return 返回结果码，详见com.quickask.operate.data.ResultCode.java
     */
    public int isAccountExist(String userAccount);

    /**
     * 通过手机注册
     * @param phoneNum 手机号码
     * @param passwordNo 密码
     * @param zone 区号，中国为86
     * @param code 短信验证码
     * @return
     */
    public int registerByPhone(String phoneNum,String passwordNo, String zone, String code);

    /**
     * 通过QQ注册
     * @param qqId QQ的唯一识别码
     * @return 返回结果码，详见com.quickask.operate.data.ResultCode.java
     */
    public int registerByQQ(String qqId);

    /**
     * 通过微信注册
     * @param wechatId
     * @return 返回结果码，详见com.quickask.operate.data.ResultCode.java
     */
    public int registerByWechat(String wechatId);

    /**
     * 普通注册
     * @param account 账号
     * @param passwordNo 密码
     * @return 返回结果码，详见com.quickask.operate.data.ResultCode.java
     */
    public int registerByNormal(String account, String passwordNo);

    /**
     * 通过手机号码登录
     * @param phoneNum 手机号码
     * @param passwordNo 密码
     * @return 返回用户实体，包含用户的主要信息
     */
    public AsknowUserEntity loginByPhone(String phoneNum, String passwordNo);

    /**
     * 通过QQ登录
     * @param qqId
     * @return 返回用户实体，包含用户的主要信息
     */
    public AsknowUserEntity loginByQQ(String qqId);

    /**
     * 通过微信登录
     * @param wechatId
     * @return 返回用户实体，包含用户的主要信息
     */
    public AsknowUserEntity loginByWechat(String wechatId);

    /**
     * 通过账号登录
     * @param account 账号
     * @param passwordNo 密码
     * @return 返回用户实体，包含用户的主要信息
     */
    public AsknowUserEntity loginByNormal(String account, String passwordNo);

    /**
     * 用户token是否存在
     * @param userId
     * @param token
     * @return 返回结果码，详见com.quickask.operate.data.ResultCode.java
     */
    public int isTokenExist(Integer userId,String token);

    /**
     * 获取用户token
     * @param userId 用户id
     * @return token
     */
    public String loadToken(Integer userId);



}
